本文结合例子介绍两种自定义网络拓扑的方法。使用The ONE仿真器,网络拓扑通常由移动模型或者外部数据集生成。如果自己需要定制简单的网络拓扑,如two-way relay networks,那该怎么做呢。

1. Two-way relay networks

1.1 创建拓扑结构

无线双向中继网络(two-way relay networks)是一个很经典的例子,经常用来介绍网络编码在无线网络带来的优势。其拓扑结构如下:

无线双向中继网络网络编码

鉴于节点数很少,可以通过将节点放置在指定的坐标来创建网络拓扑。假设传输半径为10m,将节点A、R、B分别放置在(0, 0)(8, 0)(16, 0)。值得注意的是,因为每个节点的坐标不一样,所以需要创建3个group。相关的配置如下:

## A -- R -- B
Scenario.nrofHostGroups = 3
Group.nrofHosts = 1
Group.movementModel = StationaryMovement

Group1.groupID = A
Group1.nodeLocation = 0,0

Group2.groupID = B
Group2.nodeLocation = 16,0

Group3.groupID = R
Group3.nodeLocation = 8,0

1.2 产生消息

MessageEventGenerator自动创建消息,关于MessageEventGenerator参考《消息事件产生器MessageEventGenerator 》。相关的设置如下(以节点A为例):

Events.nrof = 2

Events1.class = MessageEventGenerator
Events1.interval = 4
Events1.size = 1k,2k
Events1.prefix = M
Events1.hosts = 0,1
Events1.tohosts = 1,2

值得注意的是,hoststohosts两个设置选项,包含下限但不包含上限。

2. X topology

2.1 创建拓扑结构

另一个无线网络编码的经典例子如下:

无线网络编码经典例子

像这样的例子,设计各个点的坐标比较难。幸运的是,可以使用ExternalEventsQueue将节点的连接情况读入。首先将节点的连接信息写入一个文件(如cross.dat),如下:

0.0 CONN 0 2 up
0.0 CONN 0 3 up
0.0 CONN 1 2 up
0.0 CONN 1 4 up
0.0 CONN 2 3 up
0.0 CONN 2 4 up

这里,节点不断开,即整个仿真都保持建立。值得注意的是,节点的标号需要normalized,从0开始。

导入外部数据集,相关设置项如下,详情见《导入不含节点位置的数据集》。

Scenario.simulateConnections = false
Group.movementModel = StationaryMovement
Group.nodeLocation = 0,1

Events3.class = ExternalEventsQueue
Events3.filePath = nc/settings/5_settings_shigs/simple_scenario/cross.dat

2.2 产生消息

跟two-way relay networks一样,产生消息很简单,相关设置选项如下:

Events.nrof = 3

## 0 --> 4
Events1.class = MessageEventGenerator
Events1.interval = 5
Events1.size = 1k,2k
Events1.prefix = M
Events1.hosts = 0,1
Events1.tohosts = 4,5

3. 总结

简单的拓扑结构可以将节点放在相应的坐标,复杂的拓扑结构将节点的连接情况作为外部文件导入仿真器。

最后,分享一点个人经历。刚开始接触The ONE,不知道如何创建这些简单的拓扑结构。最近的仿真,不管我怎么调参数,结果总是很奇怪,难以解释。所以才想着,创建最简单的仿真场景,调整参数,观察结果,进一步了解仿真机理。才发现,用The ONE仿真器,不能想当然(比如上述的无线双向中继网络用xor编码需要3 emissions,然而在The ONE,却需要4 emissions),多么痛的领悟。

如果您刚刚接触The ONE仿真器,强烈建议您以two-way relay networks为例,修改设置项,仔细观察并分析仿真结果。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2022-03-27 15:13

results matching ""

    No results matching ""